<?php

class UsersController extends AppController {

    var $name = 'Users';

    public function beforeFilter() {
        parent::beforeFilter();
        $this->Auth->allow('register', 'logout');
    }

    function index() {
        $this->User->recursive = 0;
        $this->set('users', $this->paginate());
    }

    function view($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Invalid user', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->set('user', $this->User->read(null, $id));
    }

    function add() {
        if (!empty($this->data)) {
            $this->User->create();
            if ($this->User->save($this->data)) {
                $this->Session->setFlash(__('Η αποθηκεύση έγινε επιτυχώς.', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('Η αποθηκεύση απέτυχε. Παρακαλώ ξαναπροσπαθήστε.', true));
            }
        }
    }

    function register(){
        if (!empty($this->data)) {
            $this->User->create();
            if ($this->User->save($this->data)) {
                $this->Session->setFlash(__('Η εγγραφή ολοκληρώθηκε.', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('Η αποθηκεύση απέτυχε. Παρακαλώ ξαναπροσπαθήστε.', true));
            }
        }

    }

    function edit($id = null) {
        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('Invalid user', true));
            $this->redirect(array('action' => 'index'));
        }
        if (!empty($this->data)) {
            if ($this->User->save($this->data)) {
                $this->Session->setFlash(__('Η αποθηκεύση έγινε επιτυχώς.', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('Η αποθηκεύση απέτυχε. Παρακαλώ ξαναπροσπαθήστε.', true));
            }
        }
        if (empty($this->data)) {
            $this->data = $this->User->read(null, $id);
        }
    }

    function delete($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Invalid id for user', true));
            $this->redirect(array('action' => 'index'));
        }
        if ($this->User->delete($id)) {
            $this->Session->setFlash(__('Η διαγραφή έγινε επιτυχώς.', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->Session->setFlash(__('Η διαγραφή απέτυχε.', true));
        $this->redirect(array('action' => 'index'));
    }

    public function login() {

    }

    public function logout() {
        $this->redirect($this->Auth->logout());
    }

}
